/**
 * @file appShell/appHeader module
 * @author lavas
 */

export const SET_APP_HEADER = 'SET_APP_HEADER';
export const SET_APP_HEADER_BG = 'SET_APP_HEADER_BG';
export const SET_DOWNLOAD_TIP = 'SET_DOWNLOAD_TIP'

export const state = () => {
  return {
    /**
     * 是否展示顶部导航栏
     *
     * @type {boolean}
     */
    show: false,
    /**
     * 是否展示下载提示
     *
     * @type {boolean}
     */
    hasDownloadTip: true,

    /**
     * 标题内容
     *
     * @type {string}
     */
    title: '神奇卡',

    /**
     * logo图标
     *
     * @type {object}
     */
    logoIcon: {
      src: '',
      alt: ''
    },

    /**
     * 是否展示左侧返回图标
     *
     * @type {boolean}
     */
    showBack: true,
    /**
     * 左侧展示发挥回退的层数
     *
     * @type {boolean}
     */
    backActionDelta: 1,
    /**
     * 是否展示左侧logo
     *
     * @type {boolean}
     */
    showLogo: false,
    /**
     * 头部到护栏高度
     *
     * @type {string}
     */
    appHeaderHeight: 0,
    /**
     * 头部背景颜色
     *
     * @type {string}
     */
    appHeaderBg: '#ffffff',
    /**
     * 是否显示返回导航栏
     *
     * @type {boolean}
     */
    showNavBack: false,
    /**
     * 当前是否是首页
     *
     * @type {boolean}
     */
    isIndex: true
  };
};

export const mutations = {
  [SET_APP_HEADER](state, appHeader) {
    console.log("appHeader", appHeader)
    state = Object.assign(state, appHeader);
    console.log("state", state.title)
  },
  [SET_APP_HEADER_BG](state, color) {
    state.appHeaderBg = color;
  },
  [SET_DOWNLOAD_TIP](state, flag) {
    state.hasDownloadTip = flag;
  }
};

export const actions = {

  /**
   * 设置顶部导航条
   *
   * @param {Function} commit commit
   * @param {Object} appHeader appHeader
   */
  setAppHeader({
    commit
  }, appHeader) {
    commit(SET_APP_HEADER, appHeader);
  },
  /**
   * 设置顶部导航条背景颜色
   *
   * @param {Function} commit commit
   * @param {Object} appHeader appHeader
   */
  setAppHeaderBg({
    commit
  }, color) {
    commit(SET_APP_HEADER_BG, color);
  },
  /**
   * 设置下载提示状态
   *
   * @param {Function} commit commit
   * @param {Boolean} flag 
   */
  setDownloadTip({
    commit
  }, flag) {
    commit(SET_DOWNLOAD_TIP, flag);
  }
};
